from pydantic import BaseModel, Field

"""
pydantic是一个用于数据验证和序列化的Python库，
而BaseModel是其主要组成部分之一。
通过继承BaseModel，你可以轻松地定义数据模型，进行数据验证和自动化的序列化与反序列化操作
"""


class TreeUniqueIn(BaseModel):
    """
    # 创建一个TreeUniqueIn对象
    tree_input = TreeUniqueIn(project_id=123, type="oak")

    # 获取对象的属性
    print(tree_input.project_id)  # 输出: 123
    print(tree_input.type)        # 输出: oak

    # 序列化为字典
    tree_dict = tree_input.dict()
    print(tree_dict)  # 输出: {'project_id': 123, 'type': 'oak'}
    """
    project_id: int
    type: int


class TreeUpdateIn(BaseModel):
    tree: list[dict] = Field(alias='body')


class TreeOut(BaseModel):
    tree: list[dict]
    id: int
    max: int
